<?php

namespace App\Support;

class Image
{
    function sliceImage($imagePath, $numberOfSlices) {
        // 检查GD库是否可用
        if (!extension_loaded('gd')) {
            die('GD库未启用，请启用后再试。');
        }

        // 获取原始图像信息
        list($width, $height, $type) = getimagesize($imagePath);

        // 计算每片的宽度
        $sliceWidth = $width / $numberOfSlices;

        // 创建原始图像资源
        switch ($type) {
            case IMAGETYPE_JPEG:
                $image = imagecreatefromjpeg($imagePath);
                break;
            case IMAGETYPE_PNG:
                $image = imagecreatefrompng($imagePath);
                break;
            case IMAGETYPE_GIF:
                $image = imagecreatefromgif($imagePath);
                break;
            default:
                die('不支持的图像类型。');
        }

        // 切片并保存每片到本地文件
        for ($i = 0; $i < $numberOfSlices; $i++) {
            // 创建一张新图像
            $slice = imagecreatetruecolor($sliceWidth, $height);

            // 将原始图像的一部分复制到新图像
            imagecopy($slice, $image, 0, 0, $i * $sliceWidth, 0, $sliceWidth, $height);

            // 生成文件名
            $outputFileName = './slice_' . $i . '.jpg';

            // 保存切片到文件
            imagejpeg($slice, $outputFileName);

            // 释放切片资源
            imagedestroy($slice);

        }

        // 释放原始图像资源
        imagedestroy($image);
    }
}
